#Python3.6
#修复弹出窗口bug
from datetime import *
import os
import time as T
import pyautogui as P
######################################
#嵌入以前做好的模块
def GAME():
    #导入所需的模块
    import sys,pygame,time,os
    #设置右下角的坐标
    ZX,ZY=1535, 863
    ZXY= []
    with open('XY.txt', 'r')as F:
        for i in F:
            ZXY.append(int(i))
        print(f'{ZXY[0]}:{ZXY[1]}')
        ZX,ZY = ZXY[0], ZXY[1]
    # 使用pygame之前必须初始化
    pygame.init()
    # 设置主屏窗口
    '''pygame.FULLSCREEN	创建一个全屏窗口。
    pygame.HWSURFACE	创建一个硬件加速窗口，必须和 FULLSCREEN 同时使用。
    pygame.OPENGL	创建一个 OPENGL 渲染窗口。
    pygame.RESIZABLE	创建一个可以改变大小的窗口。
    pygame.DOUBLEBUF	创建一个双缓冲区窗口，建议在 HWSURFACE 或者 OPENGL 时使用。
    pygame.NOFRAME	创建一个没有边框的窗口。'''
    screen = pygame.display.set_mode(flags=pygame.FULLSCREEN)
    # 设置窗口的标题，即游戏名称
    pygame.display.set_caption('准备关机')
    #pygame.image.load方法,传入图片路径，返回surface对象(导入图片)
    self=pygame.image.load("ico.ico")
    #设置左上角窗口图标
    pygame.display.set_icon(self)
    #创建白色背景
    screen.fill([255,255,255])
    #延时一下
    time.sleep(1)
    # 引入字体类型
    f = pygame.font.Font('C:/Windows/Fonts/simhei.ttf',70)
    #制作一个在屏幕上打印文字的函数
    def zi(X,Y,z):
        # 生成文本信息，第一个参数文本内容；第二个参数，字体是否平滑；
        # 第三个参数，RGB模式的字体颜色；第四个参数，RGB模式字体背景颜色；
        text = f.render(z,True,(0,0,0),(255,255,255))
        #获得显示对象的rect区域坐标
        textRect =text.get_rect()
        # 设置显示对象居中
        textRect.center = (X,Y)
        # 将准备好的文本信息，绘制到主屏幕 Screen 上。
        screen.blit(text,textRect)
    #使用函数建立文本
    zi(ZX/2, ZY/4.3,'是否关机？')
    zi(ZX/5.3, ZY/1.4,'稍后关机')
    zi(ZX/1.2, ZY/1.4,'立刻关机')
    #zi(ZX/2,ZY/2,'·')#中心点较准
    # 固定代码段，实现点击"X"号退出界面的功能，几乎所有的pygame都会使用该段代码
    while True:
        '''# 循环获取事件，监听事件状态
        for event in pygame.event.get():
            # 判断用户是否点了"X"关闭按钮,并执行if代码段
            if event.type == pygame.QUIT:
                #卸载所有模块
                pygame.quit()
                #终止程序，确保退出程序
                sys.exit()'''
        pygame.display.flip() #更新屏幕内容
        #等待事件发生（堵塞用法）event = pygame.event.wait()
        event = pygame.event.wait()
        if event.type == pygame.MOUSEBUTTONUP:
            #print('鼠标弹起',event.pos)
            X,Y=event.pos
            #print(X,Y)
            if Y>ZY/2:
                if X<ZX/2:
                    print('点击了稍后关机')
                    os.system('shutdown -a')
                    #卸载所有模块
                    pygame.quit()
                    return 'a'
                elif X>ZX/2:
                    print('点击了立即关机')
                    os.popen('shutdown -s -f -t 1')
                    #卸载所有模块
                    pygame.quit()
                    #终止程序，确保退出程序
                    sys.exit()
                else:
                    pass
######################################
tmNow = datetime.now()
d = date.today()


L = []
with open('../off.txt', 'r')as F:
    for i in F:
        L.append(int(i))
    print(f'当前设定的时间为{L[0]}:{L[1]}:{L[2]}和{L[3]}:{L[4]}:{L[5]}')
    t1 = time(L[0], L[1],L[2])
    #t1 = time(int(input('h')),int(input('m')),int(input('s')))#
    t2 = time(L[3], L[4],L[5])
    #t2 = time(int(input('h')),int(input('m')),int(input('s')))#

shtdownTime1 = datetime.combine(d, t1)
shtdownTime2 = datetime.combine(d, t2)


def ShutDown(T):
    tmNow = datetime.now()
    timedDelta = (T - tmNow).total_seconds()
    if timedDelta < -5:
        print('过时')
        return ('continue')
    if timedDelta < 57 and timedDelta > -3:
        print('到时')
        return ('break')
    else:
        print('没到')
        return ('continue')


if __name__ == '__main__':
    T.sleep(2)
    while True:
        if ShutDown(shtdownTime1) =='break' or ShutDown(shtdownTime2)=='break':
            T.sleep(2)
            break
        else:
            T.sleep(2)
            continue
    while True:
        P.press('esc')
        os.popen('powershell -command "& { $x = New-Object -ComObject Shell.Application; $x.minimizeall() }''')
        os.system('shutdown -s -f -c 请及时在弹出的页面内选择 -t 80')
        GAME()
        T.sleep(60*5)
        '''
        P.hotkey('win', 'm')
        #userword=P.confirm(text='请选择关机时间:\n(1分钟未选择自动关机)',title='温馨提示',buttons=['3分钟后','6分钟后','重启','注销','关机'])
        userword = P.confirm(text='请选择关机时间:\n(1分钟未选择自动关机)',title='温馨提示',buttons=['3分钟后','6分钟后','关机'])
        if userword =='3分钟后':
            os.system('shutdown -a')
            for i in range(180, 0,-1):
                T.sleep(1)
                print(i)
            os.system('shutdown -s -f -t 80')
        elif userword =='6分钟后':
            os.system('shutdown -a')
            for i in range(360, 0,-1):
                T.sleep(1)
                print(i)
            os.system('shutdown -s -f -t 80')
        elif userword =='关机':
            os.system('shutdown -a')
            os.system('shutdown -s -f -t 1')
            break
        elif userword =='注销':
            os.system('shutdown -a')
            os.system('shutdown -l -f -t 1')  # L
            break
        elif userword =='重启':
            os.system('shutdown -a')
            os.system('shutdown -r -f -t 1')  # R
            break'''
